package com.ruoyi.security.dto.backtest;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author yeoman
 * @date 2025/11/10 15:17
 * @description 回测结果-交易统计
 */
@Data
public class SecurityGridTradingBacktestResultTradingStatisticsDto {
    /**
     * 持仓天数
     */
    private Integer positionDays;

    /**
     * 空仓天数
     */
    private Integer emptyPositionDays;

    /**
     * 空仓日期列表
     */
    private List<String> emptyPositionDateList;
    /**
     * 买入次数
     */
    private Integer buyCount;
    /**
     * 卖出次数
     */
    private Integer sellCount;
    /**
     * 交易次数
     */
    private Integer tradeCount;
    /**
     * 买入数量
     */
     private Integer buyQuantity;
      /**
     * 卖出数量
     */
     private Integer sellQuantity;
    /**
     * 交易数量
     */
    private Integer tradeQuantity;
    /**
     * 买入金额
     */
    private BigDecimal buyAmount;
    /**
     * 卖出金额
     */
    private BigDecimal sellAmount;
    /**
     * 交易金额
     */
    private BigDecimal tradeAmount;
    /**
     * 买入手续费
     */
    private BigDecimal buyChargeAmount;
    /**
     * 卖出手续费
     */
    private BigDecimal sellChargeAmount;
    /**
     * 交易手续费
     */
    private BigDecimal tradeChargeAmount;
    /**
     * 持仓数量
     */
    private Integer position;
    /**
     * 市值
     */
    private BigDecimal marketValue;
    /**
     * 可用资金
     */
    private BigDecimal availableAmount;
    /**
     * 最大投入资金（元）
     */
    private BigDecimal maxInvestmentAmount;
    /**
     * 总资产
     */
    private BigDecimal totalAssets;
    /**
     * 总收益
     */
    private BigDecimal totalProfit;
    /**
     * 总收益率（%）- 当前投入
     */
    private BigDecimal totalProfitRateByCurrentInvestment;
    /**
     * 总收益率（%）- 最大投入
     */
    private BigDecimal totalProfitRateByMaxInvestment;
    /**
     * 总收益率（%）- 期初总资产
     */
    private BigDecimal totalProfitRateByInitialTotalAssets;
    /**
     * 一直持有收益
     */
    private BigDecimal alwaysHoldProfit;
    /**
     * 一直持有收益率（%）
     */
    private BigDecimal alwaysHoldProfitRate;
    /**
     * 超额收益率（%）- 当前投入
     */
    private BigDecimal excessProfitRateByCurrentInvestment;
    /**
     * 超额收益率（%）- 最大投入
     */
    private BigDecimal excessProfitRateByMaxInvestment;
    /**
     * 超额收益率（%）- 期初总资产
     */
    private BigDecimal excessProfitRateByInitialTotalAssets;

    /**
     * 最大回撤开始日期
     */
    private String maxDrawdownStartDate;

    /**
     * 最大回撤结束日期
     */
    private String maxDrawdownEndDate;

    /**
     * 最大回撤金额
     */
    private BigDecimal maxDrawdownAmount;

    /**
     * 最大回撤率（%）- 当前投入
     */
    private BigDecimal maxDrawdownRatioByCurrentInvestment;

    /**
     * 最大回撤率（%）- 最大投入
     */
    private BigDecimal maxDrawdownRatioByMaxInvestment;

    /**
     * 最大回撤率（%）- 期初总资产
     */
    private BigDecimal maxDrawdownRatioByInitialTotalAssets;

}
